使用jconsole、jvisualvm查看线程运行状态、内存实时监控 您所在的位置:网站首页 linux 查看运行级别 使用jconsole、jvisualvm查看线程运行状态、内存实时监控

使用jconsole、jvisualvm查看线程运行状态、内存实时监控

2023-05-23 07:25| 来源: 网络整理| 查看: 265

目录

一、jconsole

 二、jvisualvm

引言:在实际开发中由于锁的使用不当可能回造成死锁的现象,那么该怎么判断是否发生死锁了呢?在这里介绍两个jdk提供的工具

首先我们先手动创建一个简单的死锁环境运行成功后,看下面推荐的两个jdk提供的工具

import java.util.concurrent.TimeUnit; public class text { static Object lockA = new Object(); static Object lockB = new Object(); public static void main(String[] args) throws InterruptedException { new Thread(()->{ synchronized (lockA){ try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (lockB){ } } }).start(); new Thread(()->{ synchronized (lockB){ try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (lockA){ } } }).start(); } } 一、jconsole

1、在cmd中输入jconsole,点击回车后回弹出相关的框框

 2、点击本地连接,然后要查看的进程,然后点击连接

 3、在弹出的页面中点击不安全连接

 4、点击检测死锁

5、点击相关的线程查看信息,可以定位到java代码可能发生死锁的位子

 二、jvisualvm

 1、在cmd中直接输入jvisualvm,点击回车会弹出框框

2、选择要查看的进程双击

 3、双击之后会展示进程相关信息,这时候点击线程,查看线程信息

 4、如果存在死锁,会出现下图的样式,然后点击红色框框中的线程Dump

 5、点击线程Dump之后进入新页面拖到最底下就能看到线程死锁相关信息

总结:jdk提供的这两款可视化工具不仅能够给我们排查死锁情况,还能让我们实时监控内存的使用,很牛就是了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有